import axios from 'axios'
import router from '@/router'

const serve = axios.create({
  baseURL: 'https://api.zghprlzy.com/',
  timeout: 30000
})

serve.interceptors.request.use(
  (config) => {
    const token = localStorage.getItem('ACCESS_TOKEN')
    if (token) {
      config.headers.Authorization = token
    }
    return config
  },
  (err) => {
    return Promise.reject(err)
  }
)

serve.interceptors.response.use(
  (response) => {
    if (response.status === 200) {
      return response.data
    }
  },
  (error) => {
    if (error.response) {
      if (
        error.response.data &&
        (error.response.data.code === 10001 ||
          error.response.data.code === 10000 ||
          error.response.data.code === 10002)
      ) {
        router.push({ name: 'Login' })
      }
      return error.response.data
    } else if (error.request) {
      return error.request
    } else {
      return error.message
    }
  }
)

const baseApi = {
  //   登录
  login(params = {}) {
    return serve.post('/users/login', params)
  },
  //   注册
  register(params = {}) {
    return serve.post('/users/new-user', params)
  },
  // 获取个人信息
  getUserInfo() {
    return serve.get('/user-details/information')
  },
  // 首页列表
  getJobList(params) {
    return serve.get('/user-details/jobs', { params: { ...params } })
  },
  // 获取系列下拉列表(企业性质,工作类型等等)
  // 企业性质
  getPropersList() {
    return serve.get('/commons/company-propers', { params: { isLimit: false } })
  },
  // 工作类型
  getWorkTypesList() {
    return serve.get('/commons/work-types', { params: { isLimit: false } })
  },
  // 性别
  getSexList() {
    return serve.get('/commons/genders', { params: { isLimit: false } })
  },
  // 政治面貌
  getPoliticsList() {
    return serve.get('/commons/politics', { params: { isLimit: false } })
  },
  // 获取教育程度列表
  getEducationsList() {
    return serve.get('/commons/educations', { params: { isLimit: false } })
  },
  // 获取经验列表
  getExpList() {
    return serve.get('/commons/experiences', { params: { isLimit: false } })
  },
  // 获取结婚情况列表
  getMarriesList() {
    return serve.get('/commons/marries', { params: { isLimit: false } })
  },
  // 设置工作状态
  setJobState(params) {
    return serve.put('/user-details/job-statuses', params)
  },
  // 修改密码
  changePsw(params) {
    return serve.put('/users/passwords', params)
  },
  // 保存信息
  saveUserInfo(params) {
    return serve.put('/user-details', params)
  },
  // 获取轮播图列表
  getBannerList() {
    return serve.get('/ads')
  },
  getNoticeList(params) {
    return serve.get('/notification/notifications', { params: { ...params } })
  },
  getNoticeDetail(id) {
    return serve.get('/notification/no-login/' + id)
  }
}

export default baseApi
